在Selenium 3 Java中启动Firefox线程本地驱动程序
我刚刚更新到Selenium 3.0.0-beta3,并尝试在Firefox45中执行测试
我已经下载了geckodriver的第10版。exe并将其添加到我的路径环境变量中。我还在geckodriver的代码中设置system属性,就像我使用Chrome驱动程序时一样,它工作得非常好,但是,我仍然会得到以下TestNG消息:
org.openqa.selenium.WebDriverException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases Command duration or timeout: 411 milliseconds Build info: version: '2.52.0', revision: '4c2593cfc3689a7fcd7be52549167e5ccc93ad28', time: '2016-02-11 11:22:43' System info: host: 'VMP-2316', ip: '10.80.50.100', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_92' Driver info: org.openqa.selenium.remote.RemoteWebDriver
下面是我用来设置驱动程序的代码:
// Set Driver
threadDriver = new ThreadLocal<RemoteWebDriver>();
DesiredCapabilities dc = new DesiredCapabilities();
System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");
dc.setBrowserName(DesiredCapabilities.firefox().getBrowserName());
dc.setCapability("marionette", true);
threadDriver.set(new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), dc));
# 1 楼答案
另一种方法是在启动服务器/节点的命令行中定义驱动程序的路径:
# 2 楼答案
我猜您正在网格上运行测试。 当测试在网格上运行时,涉及三台机器
在您的情况下,您需要确保机器C
-Dwebdriver.gecko.driver
通知selenium节点(如Florent所述)语句
System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");
将对机器A产生影响,而不是对机器C(它真正应该作用的地方)产生影响希望有帮助